A data storage system is an arrangement of hardware and software that typically includes one or more storage processors coupled to an array of non-volatile data storage devices, such as magnetic disk drives, electronic flash drives, and/or optical drives. The storage processors service host input/output (I/O) operations received from host machines. The received I/O operations specify storage objects (e.g. logical disks or “LUNs”) that are to be written to, read from, created, or deleted. The storage processors run software that manages incoming I/O operations and that performs various data processing tasks to organize and secure the host data received from the host machines and stored on the non-volatile data storage devices
Data storage systems commonly arrange data in structures known as file systems. Such file systems include both data and metadata. The metadata organizes the file data on disk, such that each file's data can be located, placed in proper sequence, and kept separate from other files' data.
Some file systems employ deduplication. To perform deduplication, a program searches a file system for data blocks having identical values. The program then replaces duplicate blocks with pointers to a single retained copy. Deduplication can save considerable space in file systems that store multiple copies of the same data.